package com.liqi.display.mapper;

import com.liqi.display.entity.returnType.TopEightTask;
import com.liqi.display.entity.returnType.TopTaskAreaApply;
import com.liqi.display.entity.returnType.TopTaskWindow;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author liqi
 * @since 2021-07-23
 */
@Mapper
public interface StatisticsMapper {
    //当天收件总数
    Integer getTotalDeal(@Param("start") String start,@Param("end")String end);
    //当天发证总数
    Integer getTotalSend(@Param("start") String start,@Param("end")String end);
    //近30天收件总数
    Integer getMouthTotalDeal(@Param("start") String start,@Param("end")String end);
    //近30天发证总数
    Integer getMouthTotalSend(@Param("start") String start,@Param("end")String end);

    //4、近30天各渠道申办量
    List<TopEightTask> totalBidType(Date date);
    Integer totalBidType2(Date date);

    //6、近30天事项申办量top8
    List<TopEightTask> topEightTask(Date date);

    //7、近30天各业务区域申办量统计
    List<TopTaskAreaApply> areaApplyTotal(@Param("date") Date date);

    //9、近1天好差评率
    /**
     * 好评率
     * @param stars
     * @param date
     * @return
     */
    Integer total(@Param("stars") Integer stars,@Param("date") Date date);

    //10、近30天各业务区域好差评得分排名（满分5分）
    List<TopTaskWindow> scoreEval(Date date);

    //11、近10日文件柜放取人员对比图
    /**
     * 查询放件数量
     *
     * @param map
     * @return
     */
    Integer lateTen(Map<String, Object> map);
    /**
     * 查询取件数量和回收数量，receiveType如果是PUBLIC说明是群众，如果是STAFF说明是业务员回收
     *
     * @param map
     * @return
     */
    Integer receiveNumber(Map<String, Object> map);

    /**
     * 12、事项同源统计，是否本地化事项
     * 1、已上线是本地化
     * @return
     */
    Integer localCount();

    /**
     * 12、事项同源统计，是否本地化事项
     * 2、已上线非本地化
     * @return
     */
    Integer nonlocalCount();

    /**
     * 12、事项同源统计，是否本地化事项
     * 3、已上线总数
     * @return
     */
    Integer onlineCount();

    /**
     * 13、近30天退件总数
     * @param date
     * @return
     */
    Integer sendBackCount(@Param("date") Date date);

    /**
     * 14、近30天办结总数
     * @param date
     * @return
     */
    Integer finishCount(@Param("date") Date date);


}
